package com.xinqi.modules.sys.complaint.service;

import com.xinqi.common.base.response.PageInfo;
import com.xinqi.common.base.response.Param;
import com.xinqi.modules.sys.complaint.dto.req.ComplaintConfigCreateDTO;
import com.xinqi.modules.sys.complaint.dto.req.ComplaintConfigDeleteDTO;
import com.xinqi.modules.sys.complaint.dto.req.ComplaintConfigQueryDTO;
import com.xinqi.modules.sys.complaint.dto.req.ComplaintConfigUpdateDTO;
import com.xinqi.modules.sys.complaint.dto.rsp.ComplaintConfigResultDTO;

import java.util.List;

/**
 * 用户投诉规则表服务层
 *
 * @author: yyzhenn
 * @date: 2023/04/23
 */
public interface ComplaintConfigService {
    /**
     * 分页查询 用户投诉规则表数据
     *
     * @param pageable
     * @param query
     * @return
     */
    PageInfo<ComplaintConfigResultDTO> page(Param pageable, ComplaintConfigQueryDTO query);

    /**
     * 查询 用户投诉规则表数据
     *
     * @param query
     * @return
     */
    List<ComplaintConfigResultDTO> find(ComplaintConfigQueryDTO query);

    /**
     * 根据id查询 用户投诉规则表数据
     *
     * @param id
     * @return
     */
    ComplaintConfigResultDTO findById(Long id);

    /**
     * 新增 用户投诉规则表数据
     *
     * @param dto
     * @return
     */
    Long insert(ComplaintConfigCreateDTO dto);

    /**
     * 根据id修改 用户投诉规则表数据
     *
     * @param dto
     * @return
     */
    Boolean updateById(ComplaintConfigUpdateDTO dto);

    /**
     * 根据id删除 用户投诉规则表数据
     *
     * @param id
     * @return
     */
    Boolean deleteById(Long id);

    /**
     * 根据id删除 用户投诉规则表数据
     *
     * @param dto
     * @return
     */
    Boolean deleteById(ComplaintConfigDeleteDTO dto);
}
